package com.uco.oop.innerclass;

// 匿名内部类，是局部内部类的衍生
// 不需要单独的写一块结构，直接实现接口或者继承抽象类，并返回对象
// 在方法内部，直接 new 对象，直接重写抽象方法
// 编译后，会生成一个 主类$.class 文件，匿名实际也是有名字的
// 适合临时使用，传入对象
public class Anonymous {
    public static void main(String[] args) {
        Animal a1 = new Animal() {
            @Override
            public void eat() {
                System.out.println("cat eat");
            }
        };

        a1.eat();

        Animal a2 = new Animal() {
            @Override
            public void eat() {
                System.out.println("dog eat");
            }
        };

        a2.eat();
    }
}

interface Animal {
    public void eat();
}